//
//  XTStatus.swift
//  MyBlog
//
//  Created by victor on 16/12/19.
//  Copyright © 2016年 victor. All rights reserved.
//

import UIKit
import YYModel

/// 微博数据模型
class XTStatus: NSObject {
    // Int 类型在 64位机器是64位的，但是在32位机器是32位的
    // 如果不写 Int64 在ipad2/iphone5/5c/4s/4都无法正常运行，数据会溢出
    var id: Int64 = 0
    
    /// 微博信息内容
    var text: String?
    
    /// 转发数
    var reposts_count: Int = 0
    
    /// 评论数
    var comments_count: Int = 0
    
    /// 点赞数
    var attitudes_count: Int = 0
    
    /// 微博的用户 - 注意和服务器返回的 KEY 要一致
    var user: XTUser?
    
    /// 被转发的原创微博
    var retweeted_status: XTStatus?
    
    /// 微博配图模型数组(YY_model字典转模型时，发现一个数组属性,因为不知道调用上面类所以就会尝试调用)
    // modelContainerPropertyGenericClass 这个类方法，如果实现，yymodel就尝试使用类来实例化数组
    // 中的对象
    // modelContainerPropertyGenericClass 这个方法敲不出来，是去第三方框架网站上找的
    /// 微博配图模型数组
    var pic_urls: [XTStatusPictureModel]?
    
    /// 重写 description 计算型属性
    override var description: String {
        return yy_modelDescription()
    }
    
    /// 类函数 -> 告诉第三方框架 YY_Model 如果遇到数组类型的属性，数组中存放的对象是什么类？
    /// NSArray 中保存对象的类型通常是 `id` 类型
    /// OC 中的泛型是 Swift 推出后，苹果为了兼容给 OC 增加的
    /// 从运行时角度，仍然不知道数组中应该存放什么类型的对象
    class func modelContainerPropertyGenericClass() -> [String: AnyClass] {
        return ["pic_urls": XTStatusPictureModel.self]
    }
    
}
